//package com.jfcom.directorymonitor.service.impl;
//
//import com.jfcom.directorymonitor.domain.FileEvent;
//import com.jfcom.directorymonitor.service.FileEventProcessor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Service;
//
//@Service
//@Slf4j
//public class GitLabFileEventProcessor implements FileEventProcessor {
//
//    private final GitLabIndexService indexService;
//    private final FileContentAnalyzer contentAnalyzer;
//    private final AuditService auditService;
//
//    public GitLabFileEventProcessor(GitLabIndexService indexService,
//                                    FileContentAnalyzer contentAnalyzer,
//                                    AuditService auditService) {
//        this.indexService = indexService;
//        this.contentAnalyzer = contentAnalyzer;
//        this.auditService = auditService;
//    }
//
//    @Override
//    public void handleFileCreate(FileEvent event) {
//        // 1. 更新搜索索引
//        indexService.addToIndex(event.getFilePath());
//
//        // 2. 分析文件内容
//        FileAnalysisResult analysis = contentAnalyzer.analyze(event.getFilePath());
//
//        // 3. 记录审计日志
//        auditService.logFileCreation(event.getFilePath(), analysis);
//
//        // 4. 更新事件状态
//        event.setStatus(FileEventStatus.PROCESSED);
//    }
//
//    @Override
//    public void handleFileModify(FileEvent event) {
//        // 1. 更新搜索索引
//        indexService.updateInIndex(event.getFilePath());
//
//        // 2. 分析差异
//        FileDiff diff = contentAnalyzer.diffVersions(event.getFilePath());
//
//        // 3. 记录审计日志
//        auditService.logFileModification(event.getFilePath(), diff);
//
//        // 4. 更新事件状态
//        event.setStatus(FileEventStatus.PROCESSED);
//    }
//
//    @Override
//    public void handleFileDelete(FileEvent event) {
//        // 1. 从搜索索引移除
//        indexService.removeFromIndex(event.getFilePath());
//
//        // 2. 记录审计日志
//        auditService.logFileDeletion(event.getFilePath());
//
//        // 3. 更新事件状态
//        event.setStatus(FileEventStatus.PROCESSED);
//    }
//
//    @Override
//    public void handleFileRename(FileEvent event) {
//        // 1. 更新搜索索引（重命名操作）
//        indexService.renameInIndex(event.getOldFilePath(), event.getFilePath());
//
//        // 2. 记录审计日志
//        auditService.logFileRename(event.getOldFilePath(), event.getFilePath());
//
//        // 3. 更新事件状态
//        event.setStatus(FileEventStatus.PROCESSED);
//    }
//}
